<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /* this4种方法
    *  1.函数调用 this就是window
    *  2.对象的方法调用，this指的就是对象
    *  3.构造函数调用时，this就是新创建的对象
    *  4.使用call调用时 this就是call后面的第一个参数
    * */
    //举例1 函数调用时，this就是window
    var age=15;
    function demo() {
    console.log(this.age);//this就是window
    }
    demo();
    //举例2 对象的方法调用时，this就是对象
    var obj={
        name:"喜羊羊",
        age:2,
        sayHello:function () {
            console.log(this.age);//this就是指对象
        }
    };
    obj.sayHello();
    //举例3 构造函数调用时，this就是新创建的对象
    function Person(name,age) {
        this.name=name;
        this.age=age;
        console.log(this.age);
    }
    var per=new Person("银杏树",5);
    //举例4 使用call调用函数， this就是call后面的第一个参数
var obj1={
    name:"小汽车",
    age:5,
    sayName:function () {
    console.log(this.name);
    }
};
    var obj2={
        name:"大汽车",
        age:1,
        sayName:function () {
            console.log(this.name);
        }
    };
    obj1.sayName.call(obj2)
</script>
</body>
</html>